<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		1. js中继承有哪些方法，各有什么优缺点？（面试高频题）
		原型链继承 优点：1. 子类实例可继承父类的属性。2. 子类实例可继承父类原型对象的属性。
		缺点：1. new实例的时候无法向父类构造函数传参。
		2. 所有子类实例都会共享父类的属性，一个实例修改了父类属性，另一个实例的相关属性也会被修改。 
		
		构造函数继承 优点：1. 子类实例的属性都是私有的，互相不会影响。	
		2. 可以继承多个类的属性和方法（call多个）。
		3. 在子类中可向父类构造函数传参。
		缺点：1. 只继承了父类构造函数的属性，没有继承父类原型对象的属性。
		2. 无法实现父类构造函数的复用，每次new一个子类实例，都要重新调用。
		3. 每个子类实例都复制了父类的的属性和方法，臃肿并且性能低。
		
		组合式继承 优点：1. 子类实例可继承父类的属性。
		2. 子类实例可以继承父类原型对象的属性，可复用。
		3. 在子类中可向父类构造函数传参。
		4. 子类实例的属性都是私有的，互相不会影响，包括从父类继承的属性。
		缺点：
		1. 调用了两次父类构造函数，Human的原型对象上也有父类构造函数的属性，造成冗余了。
		
		寄生组合式继承 避免了组合继承中构造函数调用了两次的弊端。
		
		2. call方法的第一个参数是指什么？
		call方法的第一个参数就是一个对象，被调用的方法内部this指向被变成当前对象
		
	</body>
</html>
